home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr11 / dos6nts.zip / PD0459.TXT < prev    next >
Text File  |  1993-06-22  |  16KB  |  372 lines

  1. ======================================================================
  2.   Microsoft(R) Product Support Services Application Note (Text File)
  3.    PD0459: NO EXPANDED MEMORY AVAILABLE AFTER INSTALLING EMM386.EXE
  4. ======================================================================
  5.                                                    Revision Date: 4/93
  6.                                                       NO DISK INCLUDED
  7.  
  8. The following information applies to Microsoft MS-DOS, versions 5.0
  9. and 6.0.
  10.  
  11.  --------------------------------------------------------------------
  12. | INFORMATION PROVIDED IN THIS DOCUMENT AND ANY SOFTWARE THAT MAY    |
  13. | ACCOMPANY THIS DOCUMENT (collectively referred to as an            |
  14. | Application Note) IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY      |
  15. | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO    |
  16. | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A     |
  17. | PARTICULAR PURPOSE. The user assumes the entire risk as to the     |
  18. | accuracy and the use of this Application Note. This Application    |
  19. | Note may be copied and distributed subject to the following        |
  20. | conditions: 1) All text must be copied without modification and    |
  21. | all pages must be included; 2) If software is included, all files  |
  22. | on the disk(s) must be copied without modification [the MS-DOS(R)  |
  23. | utility DISKCOPY is appropriate for this purpose]; 3) All          |
  24. | components of this Application Note must be distributed together;  |
  25. | and 4) This Application Note may not be distributed for profit.    |
  26. |                                                                    |
  27. | Copyright 1991-1993 Microsoft Corporation. All Rights Reserved.    |
  28. | Microsoft and MS-DOS are registered trademarks and Windows         |
  29. | is a trademark of Microsoft Corporation.                           |
  30. | IBM and PS/2 are registered trademarks of International Business   |
  31. | Machines Corporation.                                              |
  32.  --------------------------------------------------------------------
  33.                                    
  34.                                    
  35.                              INTRODUCTION
  36.                              ============
  37.  
  38. After you install EMM386.EXE to provide access to the upper memory
  39. area (UMA), Windows versions 3.0 and 3.1 no longer provide expanded
  40. memory to your MS-DOS-based applications. This change can cause
  41. certain problems to occur.
  42.  
  43. SYMPTOMS
  44. --------
  45.  
  46. If expanded memory is no longer provided, your MS-DOS-based
  47. applications may exhibit some of the following common symptoms:
  48.  
  49. - When you start an MS-DOS-based application from within Windows, the
  50.   application displays an "Out of Memory" message and then quits.
  51.  
  52. - When you start an MS-DOS-based application from within Windows, the
  53.   application behaves erratically, and displays "Out of Memory"
  54.   messages when you try to perform certain functions.
  55.  
  56. - Windows stops responding (hangs) when you start some MS-DOS-based
  57.   applications, but you can start and run other MS-DOS-based
  58.   applications without any problems.
  59.  
  60. CAUSE
  61. -----
  62.  
  63. The DEVICE command line for EMM386.EXE contains the NOEMS switch,
  64. which tells EMM386.EXE and Windows not to provide expanded memory to
  65. MS-DOS-based applications.
  66.  
  67. SOLUTION
  68. --------
  69.  
  70. To correct this problem, edit your CONFIG.SYS file so that the DEVICE
  71. command for EMM386.EXE uses the RAM switch instead of the NOEMS
  72. switch. Procedure 1 explains how to do this. After you complete
  73. Procedure 1, if some of your memory-resident programs or device
  74. drivers fail to load into upper memory blocks (UMBs), continue with
  75. Procedure 2 and, if necessary, Procedure 3.
  76.  
  77.   NOTE: In the following three procedures, c represents your hard disk
  78.         drive.
  79.  
  80.  
  81.                PROCEDURE 1: CHANGING THE DEVICE COMMAND
  82.                ========================================
  83.  
  84. To use the RAM switch instead of the NOEMS switch, use the following
  85. steps:
  86.  
  87. 1. Use a text editor to open your CONFIG.SYS file. To edit the file
  88.    using MS-DOS Editor, type the following at the MS-DOS command
  89.    prompt, and press the ENTER key:
  90.  
  91.       edit c:\config.sys
  92.  
  93. 2. Locate the DEVICE command for EMM386.EXE. It should look similar to
  94.    the following:
  95.  
  96.       device=c:\dos\emm386.exe noems
  97.  
  98. 3. Substitute RAM for NOEMS. The corrected DEVICE command for
  99.    EMM386.EXE should look similar to the following:
  100.  
  101.       device=c:\dos\emm386.exe ram
  102.  
  103. 4. Save your CONFIG.SYS file and quit the text editor. If you're using
  104.    MS-DOS Editor, choose Exit from the File menu. When MS-DOS Editor
  105.    displays a dialog box prompting you to save your file, choose the
  106.    Yes button or press ENTER.
  107.  
  108. 5. Restart your computer by pressing CTRL+ALT+DEL.
  109.  
  110. 6. Start Windows and try to reproduce the problem. If your application
  111.    runs normally, using the NOEMS switch caused the problem and
  112.    replacing it with the RAM switch corrected it. If the problem still
  113.    occurs, call Microsoft Product Support Services for further
  114.    assistance.
  115.  
  116. After you finish this procedure, you may find some programs or device
  117. drivers now fail to load into UMBs. If so, continue with Procedure 2.
  118. To see if your programs and device drivers successfully loaded into
  119. UMBs, type the following at the MS-DOS command prompt and press ENTER:
  120.  
  121.    mem /c | more
  122.  
  123. This command displays the contents of your computer's conventional and
  124. upper memory, and shows where each program is running in memory. (For
  125. more information about the MEM /C command and UMBs, see page 320 of
  126. the "Microsoft MS-DOS User's Guide and Reference for MS-DOS 5.0". If
  127. you are using MS-DOS 6.0, type HELP at the MS-DOS command prompt.)
  128.  
  129.  
  130.                PROCEDURE 2: MAKING MORE ROOM IN THE UMA
  131.                ========================================
  132.                                    
  133. Certain address ranges in the UMA are normally reserved for use by
  134. hardware adapters. EMM386.EXE usually ignores these ranges and does
  135. not use them for UMBs. On most systems, however, adapters do not use
  136. all the reserved address ranges. You can instruct EMM386.EXE to use
  137. these empty address ranges, thereby increasing the number of programs
  138. and device drivers that you load into UMBs.
  139.  
  140. If you have MS-DOS 6.0, you can use the MemMaker program to maximize
  141. EMM386.EXE's use of the UMA. To do so, use the following steps:
  142.  
  143. 1. Start MemMaker by typing "MEMMAKER" at the MS-DOS command prompt and
  144.    pressing ENTER.
  145.  
  146. 2. When you are prompted to choose express or custom setup, choose
  147.    Custom Setup.
  148.  
  149. 3. When you are asked if you use any programs that need expanded
  150.    memory, choose Yes.
  151.  
  152. 4. In the Advanced Options screen make the following choices:
  153.  
  154.    Specify which drivers and TSRs to include in         No
  155.    optimization?
  156.    
  157.    Scan the upper memory area aggressively?             Yes
  158.    
  159.    Optimize upper memory for use with Windows?          No
  160.    
  161.    Use monochrome region (B000-B7FF) for running        No
  162.    programs?
  163.    
  164.    Keep current EMM386 memory exclusions and            Yes
  165.    inclusions?
  166.    
  167.    Move Extended BIOS Data Area from conventional       Yes
  168.    to upper memory?
  169.    
  170.    
  171.     NOTE: If your computer does not have a monochrome monitor, choose
  172.     Yes in response to the question "Use monochrome region (B000-B7FF)
  173.     for running programs?"
  174.    
  175. 5. After MemMaker restarts your computer the last time, use the MEM /C
  176.    | MORE command to see if your programs successfully loaded into
  177.    UMBs.
  178.  
  179.    If your programs and device drivers are running in UMBs, and your
  180.    MS-DOS-based application works properly and is receiving the
  181.    expanded memory it needs, you have corrected the problem. If not,
  182.    continue with Procedure 3.
  183.  
  184. If you have MS-DOS 5.0, use the following steps to configure
  185. EMM386.EXE's use of the UMA:
  186.  
  187. 1. Create an MS-DOS 5.0 startup disk. To do so, insert a formatted
  188.    floppy disk in drive A, type the following at the MS-DOS command
  189.    prompt, and press ENTER:
  190.  
  191.       sys c: a:
  192.  
  193. 2. Copy your CONFIG.SYS file to the startup disk by typing the
  194.    following:
  195.  
  196.       copy c:\config.sys a:\
  197.  
  198. 3. Use a text editor to open your original CONFIG.SYS file. To edit the
  199.    file using MS-DOS Editor, type the following at the MS-DOS command
  200.    prompt and press ENTER:
  201.  
  202.       edit c:\config.sys
  203.  
  204. 4. Locate the DEVICE command for EMM386.EXE, and insert the i switch
  205.    before the RAM switch. The i switch instructs EMM386.EXE to use an
  206.    address range in the UMA for UMBs. The value you specify for the i
  207.    switch depends on your computer and monitor type.
  208.  
  209.     NOTE: In the following examples, hexadecimal addresses consist of
  210.     the letters A-F and numbers. All "0"s represent zeros, not
  211.     letters.
  212.  
  213.    - If your computer has a monochrome monitor but is not an IBM(R)
  214.      PS/2(R), add the i=E000-EFFF switch before the RAM switch, as
  215.      follows:
  216.    
  217.          device=c:\dos\emm386.exe i=E000-EFFF ram
  218.  
  219.    - If your computer is an IBM PS/2 but does not have a monochrome
  220.      monitor, add the i=B000-B7FF switch before the RAM switch, as
  221.      follows:
  222.    
  223.          device=c:\dos\emm386.exe i=B000-B7FF ram
  224.  
  225.    - If your computer is not an IBM PS/2 and does not have a
  226.      monochrome monitor, add the i=E000-EFFF and the i=B000-B7FF
  227.      switches before the  switch, as follows:
  228.    
  229.          device=c:\dos\emm386.exe i=E000-EFFF i=B000-B7FF ram
  230.  
  231.    - If your computer is an IBM PS/2 with a monochrome monitor, skip
  232.      to Procedure 3.
  233.    
  234. 5. Save your changes and exit the text editor. If you're using MS-DOS
  235.    Editor, choose Exit from the File menu. When MS-DOS Editor displays
  236.    a dialog box prompting you to save your file, choose the Yes button
  237.    or press ENTER.
  238.  
  239. 6. Restart your computer by pressing CTRL+ALT+DEL.
  240.  
  241.    If your computer fails when you start it, the memory range you
  242.    specified for EMM386.EXE is probably being used by hardware
  243.    adapters. In this case, insert your startup disk in drive A and
  244.    restart your computer. Then, edit your CONFIG.SYS file and remove
  245.    the i switch(es) you added to the DEVICE command for EMM386.EXE.
  246.    Call Microsoft Product Support Services for further assistance.
  247.  
  248. 7. After your computer restarts, see if your programs successfully
  249.    loaded into UMBs by using the "MEM /C | MORE" command.
  250.  
  251.    You have corrected the problem if your programs and device drivers
  252.    are running in UMBs and your MS-DOS-based application still works
  253.    properly and is receiving the expanded memory it needs.
  254.    If you still cannot load programs into UMBs, continue with
  255.    Procedure 3.
  256.  
  257.  
  258.      PROCEDURE 3: REDUCING THE SPACE ALLOCATED FOR EXPANDED MEMORY
  259.      =============================================================
  260.  
  261. If you start EMM386.EXE with the RAM switch and programs or device
  262. drivers do not load into UMBs when your computer starts, your system
  263. may not have enough UMBs to run those programs or device drivers. The
  264. RAM switch sets aside 64 kilobytes (K) of the UMA as a page frame for
  265. use with expanded memory. The remaining UMBs may not be large enough
  266. to run your programs, even if you were able to include additional
  267. addresses by following Procedure 2. In such cases, you can instruct
  268. EMM386.EXE to reduce the 64K page frame to 16K, making more UMBs
  269. available.
  270.  
  271.    NOTE: Use this procedure only if your applications use expanded
  272.    memory according to the Lotus-Intel-Microsoft Expanded Memory
  273.    Specification (LIM EMS) version 4.0. Applications that follow the
  274.    LIM EMS version 3.2 need the full 64K page frame, and cannot use
  275.    expanded memory if you follow this procedure. If you are not sure
  276.    which LIM EMS version your application needs, contact your
  277.    application manufacturer.
  278.  
  279. To reduce the size of the 64K page frame and increase the number of
  280. available UMBs, use the following steps:
  281.  
  282. 1. Type EMM386 at the MS-DOS command prompt and press ENTER:
  283.  
  284.    EMM386.EXE displays information about its current memory management
  285.    activities. Locate the line that reads "Page frame segment" and
  286.    write down the hexadecimal address that appears on that line. In
  287.    the following example, the page frame segment address starts at
  288.    E000:
  289.  
  290.       Page frame segment . . . . . . . . . E000 H
  291.  
  292. 2. Use a text editor to open your original CONFIG.SYS file. To edit the
  293.    file using MS-DOS Editor, type the following at the MS-DOS command
  294.    prompt and press ENTER:
  295.  
  296.       edit c:\config.sys
  297.  
  298. 3. Locate the DEVICE command for EMM386.EXE, and insert the P0 switch
  299.    before the RAM switch. The P0 switch should specify the address you
  300.    noted in step 1. For example, if the page-frame segment address
  301.    starts at E000, the DEVICE command appears similar to the
  302.    following:
  303.  
  304.       device=c:\dos\emm386.exe p0=E000 ram
  305.  
  306.     NOTE: In the P0=E000 switch, the "0"s represent zeros.
  307.  
  308. 4. Save your changes and quit the text editor. If you're using MS-DOS
  309.    Editor, choose Exit from the File menu. When MS-DOS Editor displays
  310.    a dialog box prompting you to save your file, choose the Yes button
  311.    or press ENTER.
  312.  
  313. 5. Restart your computer by pressing CTRL+ALT+DEL.
  314.  
  315.    If your computer fails when you start it and you have MS-DOS 5.0,
  316.    insert your startup disk in drive A and restart your computer. Edit
  317.    your CONFIG.SYS file and remove the P0 switch you added to the
  318.    DEVICE command for EMM386.EXE. Then, save the file, restart your
  319.    computer, and repeat Procedure 3. Be sure to carefully note the
  320.    page-frame segment address.
  321.  
  322.    If your computer fails when you start it and you have MS-DOS 6.0,
  323.    restart your computer and press the F8 key. When you are asked if
  324.    you want to load EMM386.EXE, choose No. Edit your CONFIG.SYS file
  325.    and remove the P0 switch you added to the DEVICE command for
  326.    EMM386.EXE. Then, save the file, restart your computer, and repeat
  327.    Procedure 3. Be sure to carefully note the page-frame segment
  328.    address.
  329.  
  330. 6. After your computer starts, see if your programs were successfully
  331.    loaded into UMBs by using the MEM /C | MORE command.
  332.  
  333. You have corrected the problem if your programs and device drivers are
  334. running in UMBs and your MS-DOS-based applications still work properly
  335. and are receiving the expanded memory they need.
  336.  
  337. If your programs and device drivers still do not load into UMBs, it is
  338. possible that your system simply does not have enough UMBs available
  339. to run those programs. See your hardware documentation for information
  340. about which addresses in the UMA are in use, or call Microsoft Product
  341. Support Services for further assistance.
  342.  
  343. If your applications do not seem to be receiving the expanded memory
  344. they need, they may require LIM EMS version 3.2. If this is the case,
  345. you should remove the P0 switch.
  346.  
  347.                         ADDITIONAL INFORMATION
  348.                         ======================
  349.     
  350. For MS-DOS 5.0
  351. ==============
  352.  
  353. For more information about the "MEM /C" command and UMBs, see page 320
  354. of the "Microsoft MS-DOS User's Guide and Reference".
  355.  
  356. For more information about EMM386.EXE and its startup parameters, see
  357. pages 605-609 of the "Microsoft MS-DOS User's Guide and Reference."
  358.  
  359. For MS-DOS 6.0
  360. ==============
  361.  
  362. Type HELP at the MS-DOS command prompt and search on Mem, Emm386, or
  363. EMM386.EXE.
  364.  
  365. Also 
  366. ====
  367.  
  368. "Microsoft Windows User's Guide" explains how to use Windows program
  369. information files (PIFs) to provide expanded memory to MS-DOS-based
  370. applications.
  371.  
  372.